Table Effects

Functions to generate effects.

Functions

EmitLightningArc(src, dest, color, lifetime, amplitude, beamWidth, detail, smooth, endDrift) Emit a lightning arc.
EmitParticle(pos, velocity, spriteIndex, gravity, rot, startColor, endColor, blendMode, startSize, endSize, lifetime, damage, poison) Emit a particle.
EmitShockwave(pos, innerRadius, outerRadius, color, lifetime, speed, angle, hurtsLara) Emit a shockwave, similar to that seen when a harpy projectile hits something.
EmitLight(pos, color, radius) Emit dynamic light that lasts for a single frame.
EmitBlood(pos, count) Emit blood.
EmitFire(pos, size) Emit fire for one frame.
MakeExplosion(pos, size, shockwave) Make an explosion.
MakeEarthquake(strength) Make an earthquake


Functions

EmitLightningArc(src, dest, color, lifetime, amplitude, beamWidth, detail, smooth, endDrift)
Emit a lightning arc.

Parameters:

  • src Vec3
  • dest Vec3
  • color Color (default Color(255, 255, 255))
  • lifetime float Lifetime in seconds. Clamped to [0, 4.233] for now because of strange internal maths. (default 1.0)
  • amplitude int "strength" of the lightning - the higher the value, the "taller" the arcs. Clamped to [1, 255]. (default 20)
  • beamWidth int Clamped to [1, 127]. (default 2)
  • detail int Higher numbers equal more segments, but it's not a 1:1 correlation. Clamped to [1, 127]. (default 10)
  • smooth bool If true, the arc will have large, smooth curves; if false, it will have small, jagged spikes. (default false)
  • endDrift bool If true, the end of the arc will be able to gradually drift away from its destination in a random direction (default false)
EmitParticle(pos, velocity, spriteIndex, gravity, rot, startColor, endColor, blendMode, startSize, endSize, lifetime, damage, poison)

Emit a particle.

 See the sprite editor in WadTool for DEFAULT_SPRITES to see a list of sprite indices.

Parameters:

  • pos Vec3
  • velocity Vec3
  • spriteIndex int an index of a sprite in DEFAULT_SPRITES object.
  • gravity int (default 0) Specifies whether particle will fall (positive values) or ascend (negative values) over time. Clamped to [-32768, 32767], but values between -1000 and 1000 are recommended; values too high or too low (e.g. under -2000 or above 2000) will cause the velocity of the particle to "wrap around" and switch directions.
  • rot float (default 0) specifies a speed with which it will rotate (0 = no rotation, negative = anticlockwise rotation, positive = clockwise rotation).
  • startColor Color (default Color(255, 255, 255)) color at start of life
  • endColor Color (default Color(255, 255, 255)) color to fade to - at the time of writing this fade will finish long before the end of the particle's life due to internal maths
  • blendMode BlendID (default TEN.Effects.BlendID.ALPHABLEND) How will we blend this with its surroundings?
  • startSize int (default 10) Size on spawn. A value of 15 is approximately the size of Lara's head.
  • endSize int (default 0) Size on death - the particle will linearly shrink or grow to this size during its lifespan
  • lifetime float (default 2) Lifespan in seconds
  • damage bool (default false) specifies whether particle can damage Lara (does a very small amount of damage, like the small lava emitters in TR1)
  • poison bool (default false) specifies whether particle can poison Lara

Usage:

    EmitParticle(
    	yourPositionVarHere,
    	Vec3(math.random(), math.random(), math.random()),
    	22, -- spriteIndex
    	0, -- gravity
    	-2, -- rot
    	Color(255, 0, 0), -- startColor
    	Color(0,  255, 0), -- endColor
    	TEN.Effects.BlendID.ADDITIVE, -- blendMode
    	15, -- startSize
    	50, -- endSize
    	20, -- lifetime
    	false, -- damage
    	true -- poison
    	)
EmitShockwave(pos, innerRadius, outerRadius, color, lifetime, speed, angle, hurtsLara)
Emit a shockwave, similar to that seen when a harpy projectile hits something.

Parameters:

  • pos Vec3 Origin position
  • innerRadius int (default 0) Initial inner radius of the shockwave circle - 128 will be approx a click, 512 approx a block
  • outerRadius int (default 128) Initial outer radius of the shockwave circle
  • color Color (default Color(255, 255, 255))
  • lifetime float (default 1.0) Lifetime in seconds (max 8.5 because of inner maths weirdness)
  • speed int (default 50) Initial speed of the shockwave's expansion (the shockwave will always slow as it goes)
  • angle int (default 0) Angle about the X axis - a value of 90 will cause the shockwave to be entirely vertical
  • hurtsLara bool (default false) If true, the shockwave will hurt Lara, with the damage being relative to the shockwave's current speed
EmitLight(pos, color, radius)
Emit dynamic light that lasts for a single frame. If you want a light that sticks around, you must call this each frame.

Parameters:

  • pos Vec3
  • color Color (default Color(255, 255, 255))
  • radius int (default 20) corresponds loosely to both intensity and range
EmitBlood(pos, count)
Emit blood.

Parameters:

  • pos Vec3
  • count int (default 1) "amount" of blood. Higher numbers won't add more blood but will make it more "flickery", with higher numbers turning it into a kind of red orb.
EmitFire(pos, size)
Emit fire for one frame. Will not hurt Lara. Call this each frame if you want a continuous fire.

Parameters:

  • pos Vec3
  • size float (default 1.0)
MakeExplosion(pos, size, shockwave)
Make an explosion. Does not hurt Lara

Parameters:

  • pos Vec3
  • size float (default 512.0) this will not be the size of the sprites, but rather the distance between the origin and any additional sprites
  • shockwave bool (default false) if true, create a very faint white shockwave which will not hurt Lara
MakeEarthquake(strength)
Make an earthquake

Parameters:

  • strength int (default 100) How strong should the earthquake be? Increasing this value also increases the lifespan of the earthquake.
generated by TEN-LDoc (a fork of LDoc 1.4.6)